package com.pizzaonline.utils;

import java.io.IOException;
import java.util.Vector;

import javax.servlet.jsp.JspWriter;

import com.pizzaonline.entites.*;



public class Panier {
	private float prixTotal=0;
	private Vector<Entite> entites;
	private int cptPerso=0;
	
	
	public Panier()
	{

		entites=new Vector<Entite>();
		
	}
	
	public void ajouterPizza(String nom)
	{
		ajouterPizza(nom,false,null);
	}
	
	public void ajouterPizza(String nom,boolean isPerso,String [] ingredients)
	{
		if (ingredients==null) 
		{
			ingredients=new String[2];
			ingredients[0]="Tomate";
			ingredients[1]="Fromage";
		}
		Pizza p;
		if (isPerso)
		{

			cptPerso++;
			p=new Pizza(nom+cptPerso,ingredients,isPerso);
			
			
		}
		else
		{
			//recherche le nom dans 
			p=new Pizza(nom);
			
		}
		entites.add(p);
		prixTotal +=p.getPrix();
	}
	
	public void ajouterObjet(String type,String nom)
	{
		if (type.equals("menu"))
		{
			Menu m=new Menu(nom);
			//menus.add(m);
			entites.add(m);
			prixTotal +=m.getPrix();
		}
		else
		if (type.equals("pizza"))
		{
				ajouterPizza(nom,false,null);
		}
		else
		if (type.equals("dessert"))
		{
			Dessert d=new Dessert(nom);
			//desserts.add(d);
			entites.add(d);
			prixTotal += d.getPrix();
		}
		else 
		if (type.equals("salade"))
		{
			Salade s=new Salade(nom);
			//entrees.add(s);
			entites.add(s);
			prixTotal += s.getPrix();
		}
		if (type.equals("boisson"))
		{
			Boisson b=new Boisson(nom);
			entites.add(b);
			prixTotal += b.getPrix();
			
		}
				
	}
	
	public void affichePanier(JspWriter out)
	{
		affichePanier(out,true);
	}
	
	public void affichePanier(JspWriter out,boolean panier)
	{
		int compteur=0;
		
		try {
			out.write("<table class=\"blocTexte\">");
			for (int i=0;i<entites.size();i++)
				{
					
					Entite e=entites.elementAt(i);
					if (e instanceof Pizza)
					{
						Pizza p=(Pizza)e;
						if (p.isPerso())
						{
							String resIngredients="";
							for (int j=0;j<p.getIngredients().length;j++)
							{
								resIngredients +=" "+p.getIngredients()[j];
							}
							out.write("<tr><td>Pizza personnalisée:("+resIngredients+")</td><td>"+e.getPrix()+"</td><td>"+((panier)?"<a href=\"panier.jsp?supprime="+compteur+"\">Supprimer</a>":"")+"</td></tr>");
						}
						else
						{
							out.write("<tr><td>"+p.getNom()+":</td><td>"+p.getPrix()+"</td><td>"+((panier)?"<a href=\"panier.jsp?supprime="+compteur+"\">Supprimer</a>":"")+"</td></tr>");
						}
						
					}
					else
					out.write("<tr><td>"+e.getNom()+":</td><td>"+e.getPrix()+"</td><td>"+((panier)?"<a href=\"panier.jsp?supprime="+compteur+"\">Supprimer</a>":"")+"</td></tr>");
					compteur++;
				}

			out.write("<tr><td><b>Total:</b></td><td>"+prixTotal+"</td><td></td></tr>");
			out.write("</table>");
			out.write((panier?"":"<a href=\"panier.jsp\">Modifier votre commande</a>"));
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
	
	public void supprimerObjet(int indice)
	{
		try {
			Entite e=entites.elementAt(indice);
			prixTotal -=e.getPrix();
			entites.remove(indice);
		}
		catch (Exception e)
		{

		}
	}
	
	public Vector<Entite> getEntites()
	{
		return entites;
	}
	
	public float getPrixTotal()
	{
		return prixTotal;
	}
	public boolean estVide()
	{
		return entites.isEmpty();
	}
	

}
